Complete refactored class definitions, allows implicit requirements now. Allowed for fix on mouseover events