Added is full Refactoring Documentation + refactured code