added unit and performance tests; added ArrayAccess syntax to CopyOnWriteArray