refactored util package