object extender code refactored