improve add for