Did almost everything except #8, 9 and RESTful API