Add specialisation selection system, closes #240