Cleaned up message factory methods with define_method