Add Function more general