finished library create/edit/delete