using Try[T] instead of Either[Exception,T]