move to seperate classes and cfg changes