Better documentation, cleanup, new methods, etc