move the core stuff, required to use the source macros, into a separate dependency - allowing for minimal usage