Replaced old base with a new one with better structure and names and also added some new methods to various classes.