#6 refactor append_values to use a factory and create _number and _logical versions