make prepare() optonal