improve controls and ui behavior