Fixed logic
Cleaned up interface
Changed to match mock change
Adding more tests