added some functions that use boost