almost there
simplify
extract instructions to own object
remove singleton dependency
comment