added the concept of layouts