timeout and preparator as optional