move skin logic to seperate module for easy custom skinning in future releases