refactor export macros to NSObject
and allow to inherit from any class