Counterfeit Object-oriented Programming