separated data and system classes