Refact the type/ui management and add several other supported types