writing halo from scratch, the previous way was a dead end

first draft, needs a lot of cleaning up + number patches

Change-Id: Icef1e488e5bd046897507907bc170addc270e851