Initial Checkin of Assignment 2 by Bernhard Thoni