add more layout abtraction for comportable development