don't shadow a built-in with the same name
fix ValueError bug
implement __reversed__()