implemented macro for default constructor