Generalize to compose checks abstraction