Semester project written by Leon Staresinic.