www.se.rit.edu/~se441/Assignments/STM-Vending.html