Reinvent the wheel for CS425 Project.