copied the codes.