hopefully a little cleaner create method