Tidying up and slight change of client api (add init method)
Spaces, not tabs