I like this builder class, much neater.  Can we move it to its own file though?  (helps to keep things less coupled I find)