add double type support