naiive calculation seems to work well enough,
ok happy with this, now lets run run run this