Cleanup project.
Some refactoring.
Some refactoring.
Some refactoring.