clean code. Add coments