rework magazine to be a local module, just for ease in development