Handle all types separately, this fixes classes being registered/queued/executed twice or more, finally a proper permission fix