before final rework
abstract