Basic workflow complete, yet to add error checking and make the whole thing more modular