https://www.gregraiz.com/graiz/2005/02/04/layered-programming/
Layered Programming - Greg's Half Ideas