Implementing CIL as homework