backend structure