Added mtl dependency to handle monads