[AD] Surpports numeric implicit conversion.
[UP] Small changes.
[UP] Simplified implementation.