removed dependency on boost