basic CRUD functionality working