major cleanup of default values
function calls now all take a single hash for options