Preheat oven to 370f. Gently fry onion and parsley in butter till onion is soft. Add meat and turn up the heat, stirring till brown. Drain any excess fat. Empty cans of tomato into large bowl adding dash of salt and pepper and herbs, chop and mix tomatoes well. Peel and slice potatoes thinly, about 1/4 inch thick or a bit less. Grease large casserole dish and place one layer of potato slices on the bottom, covering as well as possible. Then layer half of meat mixture followed by half of tomato mixture, repeat, ending with potato layer. Evenly spread sauce over top, sprinkle with extra cheese if desired. Cover, bake 1 and a half hours, then uncover and finish cooking further half hour or till browned slightly.
Melt butter, add flour stirring till smooth. Mix egg with milk, pour gradually into flour/butter mix stirring constantly till thick and smooth. Remove from heat and add grated cheese.