core for base serialization