Added about half of the functionality...