useless methods inheritance simulation removed
reflection caching used