1.Need to reduce code duplication by concretizing values and restricting parameters in functions
2.Need to reduce code duplication by abstracting values further, such as in function parameters
3.Need a supertrait
4.Are not sure if you need a specific kind of trait