Implement crossfaction BG's version 2.0.

Note that this commit has only been compiled, the might be missing function calls or just that nothing works. I will work on this more and make sure it has all features my master branch has.