master's thesis by Nathaniel J. Grabaskas, Computer Science & Engineering, University of Washington, 2018