added 'Cunningsoft' to namespace to avoid conflicts