Updated from the original

Merged the changes from the original repo.