made all classes OO and stuff