switch from shelly to HSH

just seems simplier and easier to stay in IO monad too
and it has consistent newline handling