Refactor and add Product Service