Some refactoring has been done to improve abstraction.