move fn into class
stash procedure
use member vars
use member vars
break up long fn to use inheritance
use inheritance to split up fn
remove redundant conditional