Restructure the bundle, add datas sets, improve flexibility externalizing main library