refactoring
spike