move to method_missing and respond_to?