First part with some comments