slimmed down from using ember-publisher but we can still uses pieces from it after discussing with rondale_sc