Heat olive oil in pan, add the onion, garlic and carrot and cook until soft. Add the ground beef and stock cube and brown. Stir in the tomatoes and tomato puree and cornstarch. Simmer, stir occassionally for 15 minutes until thick.
Peel and chop potatoes and boil until soft. Mash with butter. Put the beef mixture into a deep dish, top with mashed potatoes. Broil until top is golden brown.