first step of optimizing: composer installs once at the end