Got it! Thanks John.
One thought occured to me: associative array indexes are quite expensive. For high performance, it might be better to use numeric indices, using variable names instead of the quoted names. All you will need is an equate list for all properties and methods.