inital chapter3
refactor