initial, code update (server-side) and some re-organization