Small refactorings, updated requirements