sorted out dependency between objects
merged