Finished dynamic web applications, part 2