filled in most methods in sms.py