use module level delegation instead of method_missing