public static IEnumerator getMorelikeMyMasterpiece()
    {
        CineastApi myApi = CineastApi.FindObjectOfType <CineastApi>();
        Action <List <MultimediaObject> > handlernew =
            new Action <List <MultimediaObject> >(delegate(List <MultimediaObject> list) { });
        String imgData;

        Paintable[] p = GameObject.FindObjectsOfType <Paintable>();

        imgData = p[0].GetBase64();
        byte[] bytes;
        String b64;

        imgData = "data:image/jpeg;base64," + imgData;


        // features for Masterpiece query
        String[] categories = { "globalcolor", "localcolor" };

        myApi.RequestSimilarThanMasterpiece(QueryFactory.BuildMultiCategoryQuery(categories, imgData), handlernew);


        yield return(new WaitUntil(myApi.HasFinished));

        yield return(similarIds = myApi.GetMoreLikeThisResultIds(5));

        randomIds = similarIds;

        myexhibitionManager.GetRoomByIndex(0).Walls[0].WallData.exhibits = getExhibits(5, similarIds);

        myexhibitionManager.GetRoomByIndex(0).DeleteOldandUpdate();
    }
    public static IEnumerator getMorelikeThisOne(int exhibitNumber)
    {
        CineastApi myApi = CineastApi.FindObjectOfType <CineastApi>();
        Action <List <MultimediaObject> > handlernew =
            new Action <List <MultimediaObject> >(delegate(List <MultimediaObject> list) { });

        //feature list for MLT query
        String[] categories = { "globalcolor", "localcolor", "edge" };

        myApi.RequestMoreLikeThisAndThen(
            QueryFactory.buildMoreLikeThisQuery(categories, randomIds[exhibitNumber] + "_1"), handlernew);

        yield return(new WaitUntil(myApi.HasFinished));


        similarIds = myApi.GetMoreLikeThisResultIds(5);

        randomIds = similarIds;

        myexhibitionManager.GetRoomByIndex(0).Walls[0].WallData.exhibits = getExhibits(5, similarIds);

        myexhibitionManager.GetRoomByIndex(0).DeleteOldandUpdate();

        isFinished = true;
    }