rewrite the skillAlc function