refactor(*) refactor the cards as directive, misc