more layout support function