add edit and update functionality