lesson 15, added ajax support