Merging changes from cannjeff