Add most complex functions