good enough for now... gotta finish porting over to twisted and fix up the bot code tomorrow