Refactoring! Clean API is done.