Add functional and new class Group