using double object to allow null