start of rewrite with testing
add test specs, remove some unneeded files
fix requirements when removing data_mapper requirement
continued refactor