split utility functions into separate library