The fundamental limit of coded caching systems has been a subject of intense study recently. This presentation summarizes our recent efforts on this problem. In the first part, we discussed a computer-aided investigation which leads to a set of new outer bounds, a reversely engineered code construction from the derived outer bound, and a relaxation of the LP to yield meaningful outer bounds for large problem cases which may seem computationally impossible at the first sight. In the second part, we discuss new code constructions which utilize coded prefetching and coded delivery, as well as its relation with the existing uncoded prefetching code constructions in the literature.