Hierarchical Task Networks (HTNs) are a family of powerful planning algorithms that have been successfully applied to many complex, real-world domains. However, they are limited to predictable domains. In this paper we present HOPPER (Hierarchical Ordered Partial-Plan Executor and Re-planner), a hierarchical planning agent that produces partial plans in a similar way to HTNs but can also handle unexpected events in unpredictable domains by interleaving planning and execution. HOPPER can detect and recover from unexpected events that invalidate the plan, and it can detect and exploit unexpected opportunities both serendipitously and by interleaving decompositions.