add utility functions