Updated with a GUI and backend mode.