- Detach frontend and backend operation - Use nchan as communication channel - Allow window to be closed while backend continues - Use SWAL as window manager