layout is set in constructor