use iterator adaptor instead of facade
allow explicit specification of boost program_options library