CSI333 project 3