A Project I built a couple of years ago for an event driven programming unit for college.