For CS487 class