added take_while and take_until