add documentation
private tests