[in progress]Minor refactoring & ModesList as separate datatype