Everything works, testing & documentation still to go.