stopped trying and start refactoring