abstract skin class