Bundling all changes done on the plane

@qinweigong 
Just a preference, would it be convenient to move it out as an independent class instead of an inner class, such that users won't need to type Branch.BranchError ?