Understand, compose, improvise