My version of CS446