prop refact