additional minor refactoring, updated javadocs and added first-pass of high-level overview