Gonna try monads again.