Define new Layout mechanism, but not implemented yet
migrate some window constructors to layout