now with documentation!