Classes Direct and Server extend Shared rather than Common. Common perhaps needs to be an Abstract services class (so may be renamed).