making it responsive, adding some ajax, and relevant tests