Adding one more level of abstraction
Trying to fix the errors due to main changes