working on gathering point function