+ add count property and refactor to fluent api