shadow: start making generic core