Working challenge 1 with some extensions