add a dry-run possibility, better logging