@write core data structure (50%)