break into smaller parts and drop onlyif