major changes to how commands/listeners/apis are defined