huge grabber refactoring