fix skinning, refactor parser