add peek(), asArray(), and setArray()