if the user choose position ```Position.OTHER_THAN_FIRST_OR_LAST```, then it will enter in ```case 0:``` and throw an exception, isn't it? is ```Position.OTHER_THAN_FIRST_OR_LAST``` an invalid position?