basic crud functionality is complete