Inline assertions

 - Addresses #75 
 - Cleans up the fluent api implementation a fair bit

This could be reviewed as is; but I am also waiting to see if @JakeGinnivan can come up with a cleaner alternative as discussed in #75