refact 1