added some working implementation