Started Refactoring but worked on Master :S