Adds the majority of the main methods with tests