output is now lowercased