Nice work changing everything to use result parameters. Another thing we normally do is change everything to use the static functions to get rid of a function call overhead and it allows the types to be object literals. Its not important here so its up to you if you want to change it.