passing hashes in to new up objects to remove dependency on arg order