continues on last commit to make everything modular refer issue #2