Removing dependency on GeneralizedModel and Algorithm
Addressing reviewers comments: interface refactoring