implement dependency loader