working on modulizing the framework