Initial commit with final code from class project