introduce ST monad