functional save point
stupid github part1
and part2
inprogress...
real functional