Added PropertyPath struct as a replacement for using PropertyInfo[]