This is a Semester Project written by Leon Geiger.