add new implementation
can create, modify and delete groups

design is ugly:)