the confusion between nil and an option type is very frustrating in C-style languages. fixed a bug pointed out by the static analyzer (and bavarious before that)
avoid a little bit of duplicate allocation. minor speed improvements