Now double will be used only if callback returned double. In other cases it will fall back to long data type