Closes #209 Native implementation requires significant refactor and so I wont work on this if/until there is an issue for it