Issue #3 - Almost done. There are errors yet.