added serialization capabilities