a bit of refactoring on card_remove
refactored test
test cleanup, more refactoring
remove card also removes children, closes #1