mostly working - needs to be tested and the README written