refactor vo's & entities