plugin architecture established, now start to define how the plugins work