added some further implementations