support 2d layouts for 2d topologies; move layouts to a separate namespace