Dynamically adding rows and attatching listeners to them now works. Todo app completed (barring any other refactoring requirements)