finish initial crud implementation