OOAD project for cs-291