migrating to D