reorder for better readability
support iter(values|items|keys)