Final merging with Ankit's updates and basic Bus integration (which will probably be put on hold)