updated tests and explanations