use builder pattern in query to make it more fluent