added framework for card effects