add autoresize and improve controller