deferred drawing support
use NumberValue(), IntegerValue() instead of ToNumber(), ToInteger() etc