first pass, object orientation
cleanups