improve add project function