refactoring method_missing()