Add simplecov to make sure everything gets tested
update tests and code after coverage report