return constructors instead of instances