some stupid javascript tricks to make the overrideSetter a little easier semantically (sorry)