extract run method
extract run method
refactor