Issue 3402

@phtaylor viewport callbacks + refactoring
ok so it has to be then. :-) go ahead and file issues.