refactoring vehicle and shape classes