some progress on new implementation