start refactoring
alpha