getting close all tests passing right now; need to look at full functionality