revised the API a bit, wrote some docs