Move VCS code to separate module

+ core cleanups