Big refactorings, also added if