Complete part I - passed partial tests