That sounds reasonable.
I can change this but you should be aware that this would mean that ```isValid()``` is no longer a pure virtual method and you ever add another element type you might "forget" to add an appropriate ```isValid()``` method.