[Issue #210] D O N E. Except I have to do some code cleanup.