Mostly implement `create`