It's needed to merge Toplevel and AbstractClient. Previously, we couldn't do it because Toplevel::isClient() was somewhat widely used.