added explanation and testing info