slight changes and tests
finished writing tests
need to finish with tests