add support for most configuration options
all but comparator functions
partially addresses #1