refactored and sperated code to improve readability. code is now sperated into different packages. created new class entitled SpecialRules that handles moves such as castling, promotion, and reverting an illegal move. removed the static calling of data fields and instead created getters and setters for these fields. This creates proper encapsulation of an object's data fields, proper OOP information hiding.