major refactor. use async file load.