move visibility cecking to later phase for backend