QueryBuilder fluent interface

Closes #50