Adding Abstract factory real world example classes