Using a smart way to handle position
Also fixed the course duplication denpendency problem