Cleaned up csce322a3p3