update project, using interface instead of implementation in sequence