DRY'd card class