#13: refactoring more