First part complete (just the issues in the TODO list)