added new classes to complicate object relations