ok I posted this about a few months ago and someone told me to change the $scriptdir commands and stuff well I tryed doing that I also had a friend do it for me so now I can make skins but there are a number of problems.
1) when im in the make skins dialog and im picking the .bmp files i want to make the skin up, the script dose not copy the pics and put them in the new folder. something worng in the script.
2)when I go to theme manager I cant make any of the themes load....probly becuse there is no images in the folders.
3)when I try and make a new theme with the theme maker I get this error
"* /write: unable to open 'C:\WINDOWS\DESKTOP\TEST\skins\qweqweqwe\qweqweqwe.amg' (line 325, skinsmaker.mrc)" I dont know how to fix this on line 325 and so on. can someone make this work for me please I been editing it and trying to fix it for sometime now.

Code:
 ; DIALOG
dialog Skins {
  title " Skins V1.0"
  size -1 -1 375 290
  list 2, 220 60 130 180,vsbar
  button "&Update List", 55, 221 225 128 15
  button "C&hange", 53, 80 205 70 25
  button "&OK", 50, 25 255 70 25, ok
  button "&Cancel", 51, 105 255 70 25, cancel
  button "&Make Skin", 52, 185 255 90 25
  button "C&redits", 54, 305 255 50 25
  radio "&None", 10, 10 5 70 20
  radio "&Default", 11, 85 5 70 20
  radio "&Other", 12, 160 5 70 20
  box "Informations of Skin", 1, 10 30 355 215
  text "Skin's List:",3,220 45 195 15
  text "Skin's Name:", 4, 15 90 75 15
  edit %skinamg.name, 5, 90 88 115 20, read
  text "Author:", 6, 15 130 75 15
  edit %skinamg.aut, 7, 90 128 115 20, read
  text "URL:", 8, 15 170 25 15
  edit %skinamg.url, 9, 50 168 155 20, read autohs
}

;Remote

on 1:dialog:skins:init:0: {
  if ( %skinamg.name == Nenhum)  did -c skins 10 
  if (%skinamg.name == Padrão 1.1)  did -c skins 11 
  if ( %skinamg.name != Padrão 1.1) && (%skinamg.name != Nenhum) did -c skins 12
  skinamglist
}

on 1:dialog:skins:sclick:*:{
  if ($did == 10)  { set %skin.stat nenhum | did -o skins 5 1 Nenhum | did -o skins 7 1 Nenhum | did -o skins 9 1 Nenhum }
  if ($did == 11)  { set %skin.stat padrao | did -o skins 5 1 Padrão 1.1 | did -o skins 7 1 DarkPoison | did -o skins 9 1 http://tiferro.cjb.net }
  if ($did == 12)  { did -c skins 2 1 | set %skin.stat outro | set %skind $read($scriptdir\skinlist.txt,1)  | skininfo }
  if ($did == 52) { if ($dialog(Skinmak) = $null) .timer 1 0 dialog -ma Skinmak Skinmak }
  if ($did == 54) { if ($dialog(credskinam) == $null) .timer 1 0 dialog -ma credskinam credskinam }
  if ($did == 55) { skinamglist }
  if ($did == 53)  {
    if ($did(2).sel != 0) && ($did(2).sel != $null ) && (%skin.stat == outro) {
      skinamgcom
    }
    elseif (%skin.stat == padrao) skinamg $scriptdirpadrao\padrao.amg
    elseif (%skin.stat == nenhum) skinamg nenhum
  }
  if ($did ==  2) { did -c skins 12 | did -u skins 10 | did -u skins 11 | set %skin.stat outro | set %skind $read($scriptdir\skinlist.txt,$did(2).sel) | skininfo }
}

on 1:dialog:skins:dclick:*:{
  if ($did == 2)  skinamgcom
}

;DIALOG 2
dialog Skinmak {
  title " Skins V1.0"
  size -1 -1 448 350
  text "Your Name or Nick",1, 10 10 100 18
  edit "",2, 103 8 80 20, autohs
  text "Skin's Name",3, 186 10 70 18
  edit "",4, 250 8 80 20, autohs
  text "URL",5, 335 10 25 18
  edit "",6, 360 8 82 20, autohs
  box "Skin's Files",11, 5 35 215 105
  text "Main",12, 10 55 40 18
  edit "",13, 55 53 140 20,autohs
  button "...",19, 198 53 15 20
  radio "Center",14, 10 75 80 18, group
  radio "Fill",15, 10 95 80 18
  radio "Normal",16, 10 115 80 18
  radio "Stretch",17, 100 75 80 18
  radio "Tile",18, 100 95 80 18
  box "",30, 218 35 225 105
  text "Channel",31, 222 55 40 18
  edit "",32, 263 53 157 20,autohs
  button "...",33, 423 53 15 20
  radio "Center",34, 225 75 80 18, group
  radio "Fill",35, 225 95 80 18
  radio "Normal",36, 225 115 80 18
  radio "Stretch",37, 315 75 80 18
  radio "Tile",38, 315 95 80 18
  radio "Photo",39, 315 115 80 18
  box "",20, 5 132 215 105
  text "Status",21, 10 147 30 18
  edit "",22, 45 145 150 20,autohs
  button "...",23, 198 145 15 20
  radio "Center",24, 10 167 80 18, group
  radio "Fill",25, 10 187 80 18
  radio "Normal",26, 10 207 80 18
  radio "Stretch",27, 100 167 80 18
  radio "Tile",28, 100 187 80 18
  radio "Photo",29, 100 207 80 18
  box "",50, 218 132 225 105
  text "Finger",51, 225 147 35 18
  edit "",52, 260 145 160 20,autohs
  button "...",53, 423 145 15 20
  radio "Center",54, 225 167 80 18, group
  radio "Fill",55, 225 187 80 18
  radio "Normal",56, 225 207 80 18
  radio "Stretch",57, 315 167 80 18
  radio "Tile",58, 315 187 80 18
  radio "Photo",59, 315 207 80 18
  box "",7, 5 229 438 70
  text "Addon",8, 10 245 40 18
  edit "",9, 53 243 140 20,autohs
  button "...",10, 198 243 15 20
  text "Toolbar",61, 10 270 37 18
  edit "",62, 53 268 140 20,autohs
  button "...",63, 198 268 15 20
  text "Buttons",64, 220 245 40 18
  edit "",65, 275 243 145 20,autohs
  button "...",66, 423 243 15 20
  text "Switchbar",67, 220 270 48 18
  edit "",68, 275 268 145 20,autohs
  button "...",69, 423 268 15 20
  button "&OK", 100, 140 315 70 25, ok
  button "&Cancel", 101, 230 315 70 25, cancel
}

;Remote
on 1:dialog:skinmak:init:0: {
  did -c skinmak 14 | set %skin.positpri center
  did -c skinmak 24 | set %skin.positsta center
  did -c skinmak 34 | set %skin.positcan center
  did -c skinmak 54 | set %skin.positfin center
}

on 1:dialog:skinmak:sclick:*:{
  if ($did == 14)  .set %skin.positpri center
  if ($did == 15)  .set %skin.positpri fill
  if ($did == 16)  .set %skin.positpri normal
  if ($did == 17)  .set %skin.positpri stretch
  if ($did == 18)  .set %skin.positpri tile
  if ($did == 24)  .set %skin.positsta center
  if ($did == 25)  .set %skin.positsta fill
  if ($did == 26)  .set %skin.positsta normal
  if ($did == 27)  .set %skin.positsta stretch
  if ($did == 28)  .set %skin.positsta tile
  if ($did == 29)  .set %skin.positsta photo
  if ($did == 34)  .set %skin.positcan center
  if ($did == 35)  .set %skin.positcan fill
  if ($did == 36)  .set %skin.positcan normal
  if ($did == 37)  .set %skin.positcan stretch
  if ($did == 38)  .set %skin.positcan tile
  if ($did == 39)  .set %skin.positcan photo
  if ($did == 54)  .set %skin.positfin center
  if ($did == 55)  .set %skin.positfin fill
  if ($did == 56)  .set %skin.positfin normal
  if ($did == 57)  .set %skin.positfin stretch
  if ($did == 58)  .set %skin.positfin tile
  if ($did == 59)  .set %skin.positfin photo
  if ($did == 10)  .timer -o 1 0 /selectdirz1
  if ($did == 63)  .timer -o 1 0 /selectdirz2
  if ($did == 66)  .timer -o 1 0 /selectdirz3
  if ($did == 69)  .timer -o 1 0 /selectdirz4
  if ($did == 19)  .timer -o 1 0 /selectdirz5
  if ($did == 23)  .timer -o 1 0 /selectdirz6
  if ($did == 33)  .timer -o 1 0 /selectdirz7
  if ($did == 53)  .timer -o 1 0 /selectdirz9
  if ($did == 100)  /makeskin
}

;ALIASES

alias skinamg {
  set %skinamgfile $1
  if ($1) {
    if ($1 == nenhum) { unset %skinamg.* | set %skinamg.name Nenhum | set %skinamg.aut Nenhum | set %skinamg.url ? | .background -mx | .background -sx | .background -lx | .background -ux | .background -hx | if ($gettok(%skinamg.chan,1,32) != nenhum) { set %skinamg.i 0 | :lp | inc %skinamg.i | if (%skinamg.i > $chan(0)) { halt } | .background -x $chan(%skinamg.i) | goto lp } }
    unset %skinamg.*
    set %skinamg.line 0
    set %skinamg.customcount 0
    :loop
    inc %skinamg.line
    set %skinamg.read $read(%skinamgfile,%skinamg.line)
    if (%skinamg.read == $null) { skinamg.load | halt }
    if ($gettok(%skinamg.read,1,32) == script) { set %skinamg.script $gettok(%skinamg.read,2-,32) | if (%skinamg.script == nenhum) { unset %skinamg.script } | goto loop }
    if ($gettok(%skinamg.read,1,32) == skin) { set %skinamg.name $gettok(%skinamg.read,2-,32) | goto loop }
    if ($gettok(%skinamg.read,1,32) == autor) { set %skinamg.aut $gettok(%skinamg.read,2-,32) | goto loop }
    if ($gettok(%skinamg.read,1,32) == url) { set %skinamg.url $gettok(%skinamg.read,2-,32) | goto loop }
    if ($gettok(%skinamg.read,1,32) == channel) { set %skinamg.chan $gettok(%skinamg.read,2-,32) | goto loop }
    if ($gettok(%skinamg.read,1,32) == main) { set %skinamg.main $gettok(%skinamg.read,2-,32) | goto loop }
    if ($gettok(%skinamg.read,1,32) == status) { set %skinamg.status $gettok(%skinamg.read,2-,32) | goto loop }
    if ($gettok(%skinamg.read,1,32) == finger) { set %skinamg.finger $gettok(%skinamg.read,2-,32) | goto loop }
    if ($gettok(%skinamg.read,1,32) == toolbar) { set %skinamg.toolbar $gettok(%skinamg.read,2-,32) | goto loop }
    if ($gettok(%skinamg.read,1,32) == toolbarbuttons) { set %skinamg.toolbarbuttons $gettok(%skinamg.read,2-,32) | goto loop }
    if ($gettok(%skinamg.read,1,32) == switchbar) { set %skinamg.switchbar $gettok(%skinamg.read,2-,32) | goto loop }
    goto loop
  }
  else { set %error.msg  %skinamgfile does'n exists!!! | .timer 1 0 dialog -m dialogerrorskin dialogerrorskin | halt }
}

alias skinamg.load {
  if ($gettok(%skinamg.chan,1,32) != nenhum) { 
    set %skinamg.i 0
    :mloop 
    inc %skinamg.i 
    if (%skinamg.i > $chan(0)) { goto done }
    else { 
      .background - $+ $skinamg.convert($gettok(%skinamg.chan,1,32)) $chan(%skinamg.i) $gettok(%skinamg.chan,2-,32) 
    } 
    goto mloop
  }
  :done
  if (%skinamg.main != $null) { .background -m $+ $skinamg.convert($gettok(%skinamg.main,1,32)) $gettok(%skinamg.main,2-,32) }
  if (%skinamg.status != $null) { .background -s $+ $skinamg.convert($gettok(%skinamg.status,1,32)) $gettok(%skinamg.status,2-,32) }
  if (%skinamg.toolbar != $null) { .background  -l $+ $skinamg.convert($gettok(%skinamg.toolbar,1,32)) $gettok(%skinamg.toolbar,2-,32) }
  if (%skinamg.toolbarbuttons != $null) { .background -u $+ $skinamg.convert($gettok(%skinamg.toolbarbuttons,1,32)) $gettok(%skinamg.toolbarbuttons,2-,32) }
  if (%skinamg.switchbar != $null) { .background -h $+ $skinamg.convert($gettok(%skinamg.switchbar,1,32)) $gettok(%skinamg.switchbar,2-,32) }
  set %skinamg.tog on
  skinamg.done
}

alias skinamg.convert {
  if ($1 == center) { return c }
  if ($1 == fill) { return f }
  if ($1 == normal) { return n }
  if ($1 == stretch) { return r }
  if ($1 == tile) { return t }
  if ($1 == photo) { return p }
  if ($1 == nenhum) { return x }
}

alias skinamg.done { 
  if (%skinamg.script != $null) && ($dialog(skinadd) = $null) { .timer 1 0 dialog -m skinaddd skinaddd }
}

alias skinamg.unload { unset %skinamg* }

alias skinamglist {
  write -c " $+ $scriptdir\skinlist.txt $+ "
  set %m 0
  set %amg $findfile($scriptdir,*.amg,0)
  :loop2
  inc %m
  if ( %m > %amg ) { goto end2 }
  did -o skins 2 %m $remove($nopath($findfile($scriptdir,*.amg,%m)),.amg)
  write " $+ $scriptdir\skinlist.txt $+ " $findfile($scriptdir,*.amg,%m)
  goto loop2
  :end2
  unset %m
  unset %amg
}

alias skinamgcom {
  skinamg $read($scriptdir\skinlist.txt,$did(2).sel)
}

alias skinamgcomand {
  set %skinamgz.read $read(%skind,%skinamgz.line)
}

alias skininfo {
  set %skinamgz.line 0
  :loops
  inc %skinamgz.line
  skinamgcomand
  if (%skinamgz.read == $null) { goto ends }
  if ($gettok(%skinamgz.read,1,32) == skin) { set %skininfon1 $gettok(%skinamgz.read,2-,32) | goto loops }
  if ($gettok(%skinamgz.read,1,32) == autor) { set %skininfon2 $gettok(%skinamgz.read,2-,32) | goto loops }
  if ($gettok(%skinamgz.read,1,32) == url) { set %skininfon3 $gettok(%skinamgz.read,2-,32) | goto loops }
  goto loops
  :ends
  did -o skins 5 1 %skininfon1
  did -o skins 7 1 %skininfon2
  did -o skins 9 1 %skininfon3
  unset %skinamgz.read
  unset %skinamgz.line
}

alias -l selectdirz1 {
  did -o skinmak 9 1 $$dir="Select Addon" [ [ $scriptdir ] $+ [ *.mrc ] ]
}

alias -l selectdirz2 {
  did -o skinmak 62 1 $$dir="Select Toolbar's Background" [ [ $scriptdir ] $+ [ *.bmp ] ]
}

alias -l selectdirz3 {
  did -o skinmak 65 1 $$dir="Select Toolbar's Button" [ [ $scriptdir ] $+ [ *.bmp ] ]
}

alias -l selectdirz4 {
  did -o skinmak 68 1 $$dir="Select Switchbar's Background" [ [ $scriptdir ] $+ [ *.bmp ] ]
}

alias -l selectdirz5 {
  did -o skinmak 13 1 $$dir="Select Main's Background" [ [ $scriptdir ] $+ [ *.bmp ] ]
}

alias -l selectdirz6 {
  did -o skinmak 22 1 $$dir="Select Status's Background" [ [ $scriptdir ] $+ [ *.bmp ] ]
}

alias -l selectdirz7 {
  did -o skinmak 32 1 $$dir="Select Channel's Background" [ [ $scriptdir ] $+ [ *.bmp ] ]
}

alias -l selectdirz9 {
  did -o skinmak 52 1 $$dir="Select Finger's Background" [ [ $scriptdir ] $+ [ *.bmp ] ]
}

alias makeskin {
  if ($did(4) == $null) { set %error.msg You must write a name for the skin!!! | .timer 1 0 dialog -m dialogerrorskin dialogerrorskin | did -f skinmak 4 | halt }
  if ($exists($did(9)) == $false) {
    if ($did(9) == $null) goto going
    else set %error.msg This Addon doesn't exists!!! | .timer 1 0 dialog -m dialogerrorskin dialogerrorskin | did -r skinmak 9 | halt
  }
  :going
  if ($aliaskintestez($did(13)) != okz) { set %error.msg The file must be BMP and exist!!! Leave blank for none. | .timer 1 0 dialog -m dialogerrorskin dialogerrorskin | did -r skinmak 13 | halt }
  if ($aliaskintestez($did(22)) != okz) { set %error.msg The file must be BMP and exist!!! Leave blank for none. | .timer 1 0 dialog -m dialogerrorskin dialogerrorskin | did -r skinmak 22 | halt }
  if ($aliaskintestez($did(32)) != okz) { set %error.msg The file must be BMP and exist!!! Leave blank for none. | .timer 1 0 dialog -m dialogerrorskin dialogerrorskin | did -r skinmak 32 | halt }
  if ($aliaskintestez($did(52)) != okz) { set %error.msg The file must be BMP and exist!!! Leave blank for none. | .timer 1 0 dialog -m dialogerrorskin dialogerrorskin | did -r skinmak 52 | halt }
  if ($aliaskintestez($did(62)) != okz) { set %error.msg The file must be BMP and exist!!! Leave blank for none. | .timer 1 0 dialog -m dialogerrorskin dialogerrorskin | did -r skinmak 62 | halt }
  if ($aliaskintestez($did(65)) != okz) { set %error.msg The file must be BMP and exist!!! Leave blank for none. | .timer 1 0 dialog -m dialogerrorskin dialogerrorskin | did -r skinmak 65 | halt }
  if ($aliaskintestez($did(68)) != okz) { set %error.msg The file must be BMP and exist!!! Leave blank for none. | .timer 1 0 dialog -m dialogerrorskin dialogerrorskin | did -r skinmak 68 | halt }
  mkdir " $+ $scriptdir $+ $did(4) $+ "
  write -c " $+ $scriptdir $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ "
  write " $+ $scriptdir $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " Skin  $did(4)
  if ($did(2) == $null)  write " $+ $scriptdir $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " Autor  ?
  else write " $+ $scriptdir $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " Autor $did(2)
  if ($did(6) == $null)  write " $+ $scriptdir $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " URL  ?
  else  write " $+ $scriptdir $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " URL  $did(6)
  write " $+ $scriptdir $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " -
  if ($did(9) == $null)  write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " script nenhum
  else  {
    set %skincop $did(9)
    skincopys
    write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " script %skincopz
  }
  if ($did(32) == $null)  write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " channel nenhum
  else {
    set %skincop $did(32)
    skincopys
    write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " channel %skin.positcan %skincopz
  }
  if ($did(13) == $null) " $+ write skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ "main  nenhum
  else {
    set %skincop $did(13)
    skincopys
    write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " main %skin.positpri %skincopz
  }
  if ($did(22) == $null) write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " status nenhum
  else { 
    set %skincop $did(22)
    skincopys
    write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " status %skin.positsta %skincopz
  }
  if ($did(52) == $null)  write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " finger  nenhum
  else { 
    set %skincop $did(52)
    skincopys
    write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " finger %skin.positfin %skincopz
  }
  if ($did(62) == $null)  write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " toolbar  nenhum
  else {
    set %skincop $did(62)
    skincopys
    write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " toolbar normal %skincopz
  }
  if ($did(65) == $null)  write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " toolbarbuttons  nenhum
  else {
    set %skincop $did(65)
    skincopys
    write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " toolbarbuttons normal %skincopz
  }
  if ($did(68) == $null)  write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " switchbar  nenhum
  else {
    set %skincop $did(68)
    skincopys
    write " $+ skins\ $+ $did(4) $+ \ $+ $did(4) $+ .amg $+ " switchbar normal %skincopz
  }
  skinamglist
}

alias skincopys {
  set %skin.numtokz $numtok(%skincop,92)
  set %skin.endfile $gettok(%skincop, %skin.numtokz, 92)
  .copy -ao " $+ %skincop $+ " " $+ $scriptdir $+ $did(4) $+ \ $+ %skin.endfile $+ "
  set %skincopz skins\ $+ $did(4) $+ \ $+ %skin.endfile
  unset %skin.numtokz
  unset %skin.endfile
}

DIALOG dialogerrorskin {
  TITLE "Menssages  -  Skins 1.0"
  SIZE -1 -1  200 80
  TEXT %error.msg ,2,2 10 198 30,center 
  BUTTON "&OK",1,62 45 75 22,OK
}

DIALOG credskinam {
  TITLE " Skins 1.0"
  SIZE -1 -1 250 250
  TEXT "Credits of Skins", 1, 0 10 250 20,center
  BUTTON "OK",100,100 220 50 25,OK
  EDIT " " , 2,  10 30 230 180, read, multi, vsbar, center
}

DIALOG skinaddd {
  TITLE "WARNING - Skins 1.0"
  SIZE -1 -1  250 115
  TEXT "This skin load another addon with the pictures! If you don't know what this addon do, click 'No', and load just the pictures." ,1,5 10 240 60,center 
  TEXT "You sure wanna load the addon?", 2 ,5 50 240 18,center 
  BUTTON "&Yes",50,65 75 50 25,OK
  BUTTON "&No",4,130 75 50 25,Cancel
}

on 1:dialog:skinaddd:sclick:50:{
  .timer 1 0 load -rs %skinamg.script
}

on 1:load:{
  set %skinamg.name Nenhum
  set %skinamg.aut Nenhum
  set %skinamg.url Nenhum
  echo -s  $+ $colour(info text) $+ *** Skins V1.0 -loading sucessfull.
  echo -s 14,1Get the Script 
}

on 1:join:#: { 
  if ($nick == $me) && %skinamg.tog == on { 
    .background - $+ $skinamg.convert($gettok(%skinamg.chan,1,32)) $chan $gettok(%skinamg.chan,2-,32)
  }
}
on 1:part:#: { 
  if ($nick == $me) && %skinamg.tog == on { 
    .background -x $chan 
  }
}

;POPUPS
menu status {
  Skins
  .Skin Manager (Shift + F1): if ($dialog(skins) == $null) dialog -m skins skins
  .-
  .Skin Maker (Shift + F2): if ($dialog(skinmak) == $null) dialog -m skinmak skinmak
  .Credits: if ($dialog(credskinam) == $null) dialog -m credskinam credskinam
  .-
  .Unload: echo -s  $+ $colour(info text) $+ ***  Script unloaded. | .unload  -rs skins\skinamg.mrc
}

alias -l aliaskintestez {
  if ($1 == $null) {
    return okz
  }
  else { 
    if ($exists($1) == $true) {
      if ($right($1,3) == bmp) { return okz }
      else return nopz
    }
    else return nopz
  }
}

alias sF1 { if ($dialog(skins) == $null) dialog -m skins skins }