move invoke to member_variable.hpp