full spec coverage for modles and several methods refactored
megring changes with testing and api branch