refactored FinUtil