refactor object prototypes to better reflect encapsulation