Move the macros into the crate
Forgot some license headers
Start on the reduction functions