config tidy

config funcs to set options, rather than allow clients to directly set
variables