refact #3