finishing
refactor