major background work to enable more hiding methods