The MySQL data source class is too large because we check whether we have phpBB etc. and do specific stuff. This specific code can be extracted into individual classes with a common parent class or interface.