Refactor, add entity and collect methods