correct documentation, correctly implement function