adding some adaptive design