working well
Tests work
some cleanup