add contract logic added
need test