adjusted for Visual Studio
replaced convert with op()
proof-reading and addressing comments