refact 4