add .test and .takeWhile