the constructors now expect a fixed number of paramters (except for Shape