Making changes to improve modularity of boot package, adding async and test coverage