Basic add/edit functionality roughed in