consistently using Double instead of Number
no auto-boxing
allow null for literal data