added fully functional (but basic) crud