Some refactoring.
More refactoring.
Fix require path