better undefined support
better undefined support