add even more internal validation to avoid chaos and mayhem