refactor cont'd
refactor
refactor