Implemented most functions , not tested yet
pending iterator