Consumer part is also done. Only refactorings from now on.