Updated SOEN287