Use the strict state monad