basic refactoring and start do comment