add utility functions
wip