added dynamic screen scaling