AY2526 CS886 Coursework 2