Move individual classes to subclasses and only load config file once

Also add headers with license info