this is my comp401 assignment