fix dropWhile and rename takeWhile