changes problem data functions' base classes to virt.
moves some data functions to new bases
Refactored the remaining data funtions
fix compile errors after rebasing onto sven's changes