remove dependency on boost