Added newline support and recursive stuff