some more
almost final
fix is shared
final - part1