Factored out traits to be more composable
Factored out traits to be more composable
Factored out some test code