refactor action invoker

enable additional invocations
add atom content negotiation