Change over to a fluent initialization method

@JakeWharton whatcha think?  needs some more polish but I wanted to get a first draft up for review.