reorganise component dependencies