Moved *intersect to its own helper, deobfuscated stuff, aligned some names to forge APIs

@fragmer, the clouds seem to disappear with this commit - can you see what is wrong? I can't figure this out...