no else? for invalidating or at least for a debug message.
does the spec require that smart property is on the last output? how are the outputs sorted anyway?