Reorder transformers, Support groups() anywhere and add tests