Mihir | Adding more composition instead of threading, improving delegation param passing