This is functional enough for now, will replace with HiPi at some point - closes #21