modify the create function