Both SiteAgent and BatchSystemAgent are intermediate layers, which provide not much functionality and mainly pass-through calls to the corresponding SiteAdapter and BatchSystemAdapter. It should be checked if the bit of functionality they provide can be moved to their interface classes instead and both SiteAgent and BatchSystemAgent could be removed.