built basic create function