Make tags type consistent with how it's used
Don't keep the colon in the final parameter
Replace C-style casts with C++ casts