make smartlist layout a generic one