No reliance on .value, needs to be tested more before merge into master.