refact 2