In this level, we got acquainted with working with in-memory data streams (ByteArrayInputStream, ByteArrayOutputStream) and the chain-of-responsibility design pattern.

I suggest that you take a look at the other patterns out there:

Design patterns in Java [Part 1]

Design patterns in Java [Part 2]