CRUD functions all working from browser