refact + define