implement card
clean up cerr