some structure for usaco