overall changes like interface and main loop