Working on implementing traits
Fixed some preprocessor errors