adds `normalizeObject` and option for `name` to be a function. nowhere near done