major major internal refactor
lots more refactoring
more refactoring moved update label to Card