add abstractprojectcommand