initial: before yet another refactoring