Debugged and tested.