@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
Permanent permanent = game.getPermanent(source.getSourceId());
if (player != null && permanent != null) {
player.gainLife(5, game);
permanent.moveToZone(Zone.LIBRARY, source.getId(), game, true);
player.getLibrary().addAll(player.getGraveyard().getCards(game), game);
player.getGraveyard().clear();
player.getLibrary().shuffle();
return true;