decomposed into multiple files