modified shape function