better transform2
handle -o option