Fully working - branch dcast based