Optimizations, added abstract keywords, removed unnecessary code.