refactoring...
completed object and query