need to fix the canadd function