Refactored out run-buffer from multiple modes. Added a macro that takes care of wrapping the call in a lambda and adding (interactive).