Make proc :USEable, improve error handling