Checking in my Cairo changes, probably needs cleanup