implemented collection and serialization