added some implementations