Fleshed out more details, using subprocess and Queue for data relay