new tests, looks completed but ugly code