define further utility functions