Change pointer types to *const ()
Switch to functional notation for readability
Move tests to sub-module