add create and update methods