reorder
'combine' half done
'combine' improved design