add better docs, error handling