Working version. Failing 2 tests