more modulized and directory change