added serializability