Using optionals to avoid alloc'ing objects that are thrown away