first version refactor_mark added