updated toArray