implemented single-page CRUD