train datastruct