Refactor on its way, comments are done.