breaking up utility functions