refact fullproof