refactor product api
refactor user api + tests