Fix main plugin class descriptions
Implement singleton pattern, part 1
Implement singleton pattern, part 2
Some basic code refactoring