implement missing protocols
adding serialization queue