change interface to class
clean up views and conform to naming standards
fix test