Add fromJSON and readOnly properties
Add forEachTimeout
Add array-based implementation of recording