 set preferred size get required size 
