2nd attempt using composer