constructors fixed input order