initial move shared code into its own repo