made hfrack more monad-y