got monad working
working st monad, should be faster