more refact