Added more unit tests. Broke things down into separate traits