a little more flexible layout