add Relation#limit and refactor