first commit after abstracting out into its own repo for clarity