Cleaned up monad instances some