Overhaul create functions to hopefully work correctly now