serializability and basic interface used by ui