Borrowed some functionality from a personal project(BSO) that was referneced in BD2 unintentionally and was removed.
WIP, basic stub of how I think synchronization should happen in BD2.