updated engine for constraining non-layout props