This is an assignment project for ICCH224