refactor
debug
refactor
inline function
indent
refactor
refactor
remove debug
refactor
refactor
refactor
refactor
refactor
refactor
refactor
extract function
refactor