Completely rewrote abstract_and_interfaces.py using card game example