diff --git a/.gitignore b/.gitignore
index 983bc9d0..425b64d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,4 +39,5 @@ obj
 Source/packages/* 
  
 Source/.vs/* 
-project.lock.json
\ No newline at end of file
+project.lock.json
+/.vs
diff --git a/Source/Podio .NET/Models/Comment.cs b/Source/Podio .NET/Models/Comment.cs
index 8f0d53ab..6e499f9e 100644
--- a/Source/Podio .NET/Models/Comment.cs	
+++ b/Source/Podio .NET/Models/Comment.cs	
@@ -7,7 +7,7 @@ namespace PodioAPI.Models
     public class Comment
     {
         [JsonProperty("comment_id")]
-        public int CommentId { get; set; }
+        public long CommentId { get; set; }
 
         [JsonProperty("value")]
         public string Value { get; set; }
diff --git a/Source/Podio .NET/Models/Item.cs b/Source/Podio .NET/Models/Item.cs
index 2c38f6c7..b884fe11 100644
--- a/Source/Podio .NET/Models/Item.cs	
+++ b/Source/Podio .NET/Models/Item.cs	
@@ -9,7 +9,7 @@ namespace PodioAPI.Models
     public class Item
     {
         [JsonProperty("item_id")]
-        public int ItemId { get; set; }
+        public long ItemId { get; set; }
 
         [JsonProperty("external_id")]
         public string ExternalId { get; set; }
diff --git a/Source/Podio .NET/Models/Reference.cs b/Source/Podio .NET/Models/Reference.cs
index a0a61a46..2d076ec9 100644
--- a/Source/Podio .NET/Models/Reference.cs	
+++ b/Source/Podio .NET/Models/Reference.cs	
@@ -10,7 +10,7 @@ public class Reference
         public string Type { get; set; }
 
         [JsonProperty(PropertyName = "id")]
-        public int? Id { get; set; }
+        public long? Id { get; set; }
 
         [JsonProperty(PropertyName = "title")]
         public string Title { get; private set; }
diff --git a/Source/Podio .NET/Services/CommentService.cs b/Source/Podio .NET/Services/CommentService.cs
index e8a4a4e0..9cbd07cc 100644
--- a/Source/Podio .NET/Services/CommentService.cs	
+++ b/Source/Podio .NET/Services/CommentService.cs	
@@ -20,7 +20,7 @@ public CommentService(Podio currentInstance)
         ///     Podio API Reference: https://developers.podio.com/doc/comments/delete-a-comment-22347  
         /// 
         /// 
-        public async Task DeleteComment(int commentId)
+        public async Task DeleteComment(long commentId)
         {
             string url = string.Format("/comment/{0}", commentId);
            return await  _podio.Delete(url);
@@ -32,7 +32,7 @@ public async Task DeleteComment(int commentId)
         /// 
         /// 
         /// 
-        public async Task GetComment(int commentId)
+        public async Task GetComment(long commentId)
         {
             string url = string.Format("/comment/{0}", commentId);
             return await _podio.Get(url);
@@ -46,7 +46,7 @@ public async Task GetComment(int commentId)
         /// 
         /// 
         /// 
-        public async Task> GetCommentsOnObject(string type, int id)
+        public async Task> GetCommentsOnObject(string type, long id)
         {
             string url = string.Format("/comment/{0}/{1}/", type, id);
             return await _podio.Get>(url);
@@ -76,7 +76,7 @@ public async Task> GetCommentsOnObject(string type, int id)
         /// 
         /// todo: describe hook parameter on AddCommentToObject
         /// 
-        public async Task AddCommentToObject(string type, int id, string text, string externalId = null,
+        public async Task AddCommentToObject(string type, long id, string text, string externalId = null,
             List fileIds = null, string embedUrl = null, int? embedId = null, bool alertInvite = false,
             bool silent = false, bool hook = true)
         {
@@ -108,13 +108,13 @@ public async Task AddCommentToObject(string type, int id, string text, stri
         /// 
         /// todo: describe hook parameter on AddCommentToObject
         /// 
-        public async Task AddCommentToObject(string type, int id, CommentCreateUpdateRequest comment, bool alertInvite = false,
+        public async Task AddCommentToObject(string type, long id, CommentCreateUpdateRequest comment, bool alertInvite = false,
             bool silent = false, bool hook = true)
         {
             string url = string.Format("/comment/{0}/{1}/", type, id);
             url =  Utility.PrepareUrlWithOptions(url, new CreateUpdateOptions(silent, hook, null, alertInvite));
             dynamic response = await _podio.Post(url, comment);
-            return (int) response["comment_id"];
+            return (long) response["comment_id"];
         }
 
         /// 
@@ -131,7 +131,7 @@ public async Task AddCommentToObject(string type, int id, CommentCreateUpda
         ///     The id of an embedded link that has been created with the Add an embed operation in the Embed
         ///     area
         /// 
-        public async Task  UpdateComment(int commentId, string text, string externalId = null, List fileIds = null,
+        public async Task  UpdateComment(long commentId, string text, string externalId = null, List fileIds = null,
             string embedUrl = null, int? embedId = null)
         {
             var requestData = new CommentCreateUpdateRequest()
@@ -151,7 +151,7 @@ public async Task  UpdateComment(int commentId, string text, string ext
         /// 
         /// 
         /// 
-        public async Task UpdateComment(int commentId, CommentCreateUpdateRequest comment)
+        public async Task UpdateComment(long commentId, CommentCreateUpdateRequest comment)
         {
             string url = string.Format("/comment/{0}", commentId);
              return await  _podio.Put(url, comment);
diff --git a/Source/Podio .NET/Services/ItemService.cs b/Source/Podio .NET/Services/ItemService.cs
index 8e503f5b..c46ab32d 100644
--- a/Source/Podio .NET/Services/ItemService.cs	
+++ b/Source/Podio .NET/Services/ItemService.cs	
@@ -31,7 +31,7 @@ public ItemService(Podio currentInstance)
         /// 
         /// If set to false, hooks will not be executed for the change
         /// Id of the created item
-        public async Task AddNewItem(int appId, Item item, int? spaceId = null, bool silent = false, bool hook = true)
+        public async Task AddNewItem(int appId, Item item, int? spaceId = null, bool silent = false, bool hook = true)
         {
             JArray fieldValues = JArray.FromObject(item.Fields.Select(f => new { external_id = f.ExternalId, field_id = f.FieldId, values = f.Values }));
 
@@ -188,7 +188,7 @@ public async Task AddNewItem(int appId, Item item, int? spaceId = null, boo
         ///     If true marks any new notifications on the given item as viewed, otherwise leaves any
         ///     notifications untouched, Default value true
         /// 
-        public async Task-  GetItem(int itemId, bool markedAsViewed = true)
+        public async Task-  GetItem(long itemId, bool markedAsViewed = true)
         {
             string markAsViewdValue = markedAsViewed == true ? "1" : "0";
             var requestData = new Dictionary()
@@ -210,7 +210,7 @@ public async Task-  GetItem(int itemId, bool markedAsViewed = true)
         ///     notifications untouched, Default value true
         /// 
         /// 
-        public async Task-  GetItemBasic(int itemId, bool markedAsViewed = true)
+        public async Task-  GetItemBasic(long itemId, bool markedAsViewed = true)
         {
             string viewedVal = markedAsViewed == true ? "1" : "0";
             var requestData = new Dictionary()
@@ -357,12 +357,12 @@ public async Task BulkDeleteItems(int appId, BulkDeleteReque
         ///     generated
         /// 
         /// The id of the cloned item
-        public async Task CloneItem(int itemId, bool silent = false)
+        public async Task CloneItem(long itemId, bool silent = false)
         {
             string url = string.Format("/item/{0}/clone", itemId);
             url = Utility.PrepareUrlWithOptions(url, new CreateUpdateOptions(silent));
             dynamic tw = await _podio.Post(url);
-            return int.Parse(tw["item_id"].ToString());
+            return long.Parse(tw["item_id"].ToString());
         }
 
         /// 
@@ -375,7 +375,7 @@ public async Task CloneItem(int itemId, bool silent = false)
         ///     generated
         /// 
         /// If set to false, hooks will not be executed for the change
-        public async System.Threading.Tasks.Task DeleteItem(int itemId, bool silent = false, bool hook = true)
+        public async System.Threading.Tasks.Task DeleteItem(long itemId, bool silent = false, bool hook = true)
         {
             string url = string.Format("/item/{0}", itemId);
             url = Utility.PrepareUrlWithOptions(url, new CreateUpdateOptions(silent, hook));
@@ -387,7 +387,7 @@ public async System.Threading.Tasks.Task DeleteItem(int itemId, bool silent = fa
         ///     Podio API Reference: https://developers.podio.com/doc/items/delete-item-reference-7302326 
         /// 
         /// 
-        public async System.Threading.Tasks.Task DeleteItemReference(int itemId)
+        public async System.Threading.Tasks.Task DeleteItemReference(long itemId)
         {
             string url = string.Format("/item/{0}/ref", itemId);
             await _podio.Delete(url);
@@ -472,7 +472,7 @@ public async Task> FilterItemsByView(int appId, int viewId
         /// The maximum number of results to return Default value: 13
         /// If supplied the items with these ids will not be returned
         /// 
-        public async Task> GetTopValuesByField(int fieldId, int limit = 13, int[] notItemIds = null)
+        public async Task> GetTopValuesByField(int fieldId, int limit = 13, long[] notItemIds = null)
         {
             string itemIdCSV = Utility.ArrayToCSV(notItemIds);
             var requestData = new Dictionary()
@@ -509,7 +509,7 @@ public async Task GetAppValues(int appId)
         /// 
         /// 
         /// 
-        public async Task GetItemFieldValues(int itemId, int fieldId) where T : new()
+        public async Task GetItemFieldValues(long itemId, int fieldId) where T : new()
         {
             string url = string.Format("/item/{0}/value/{1}", itemId, fieldId);
             return await _podio.Get(url);
@@ -522,7 +522,7 @@ public async Task GetAppValues(int appId)
         /// 
         /// 
         /// 
-        public async Task-  GetItemBasicByField(int itemId, string fieldId)
+        public async Task-  GetItemBasicByField(long itemId, string fieldId)
         {
             string url = string.Format("/item/{0}/reference/{1}/preview", itemId, fieldId);
             return await _podio.Get- (url);
@@ -535,7 +535,7 @@ public async Task-  GetItemBasicByField(int itemId, string fieldId)
         /// 
         /// 
         /// 
-        public async Task> GetItemReferences(int itemId)
+        public async Task> GetItemReferences(long itemId)
         {
             string url = string.Format("/item/{0}/reference/", itemId);
             return await _podio.Get>(url);
@@ -573,7 +573,7 @@ public async Task GetFieldRanges(int fieldId)
         /// 
         /// 
         /// 
-        public async Task> GetItemValues(int itemId)
+        public async Task> GetItemValues(long itemId)
         {
             string url = string.Format("/item/{0}/value", itemId);
             return await _podio.Get>(url);
@@ -585,7 +585,7 @@ public async Task> GetItemValues(int itemId)
         /// 
         /// 
         /// 
-        public async Task GetItemRevision(int itemId, int revision)
+        public async Task GetItemRevision(long itemId, int revision)
         {
             string url = string.Format("/item/{0}/revision/{1}", itemId, revision);
             return await _podio.Get(url);
@@ -597,7 +597,7 @@ public async Task GetItemRevision(int itemId, int revision)
         /// 
         /// 
         /// 
-        public async Task> GetItemRevisions(int itemId)
+        public async Task> GetItemRevisions(long itemId)
         {
             string url = string.Format("/item/{0}/revision/", itemId);
             return await _podio.Get>(url);
@@ -610,7 +610,7 @@ public async Task> GetItemRevisions(int itemId)
         /// 
         /// 
         /// 
-        public async Task GetMeetingUrl(int itemId)
+        public async Task GetMeetingUrl(long itemId)
         {
             string url = string.Format("/item/{0}/meeting/url", itemId);
             dynamic response = await _podio.Get(url);
@@ -626,7 +626,7 @@ public async Task GetMeetingUrl(int itemId)
         /// 
         /// 
         /// The new status, either "invited", "accepted", "declined" or "tentative"
-        public async System.Threading.Tasks.Task SetParticipation(int itemId, string status)
+        public async System.Threading.Tasks.Task SetParticipation(long itemId, string status)
         {
             dynamic requestData = new
             {
@@ -644,7 +644,7 @@ public async System.Threading.Tasks.Task SetParticipation(int itemId, string sta
         /// 
         /// 
         /// 
-        public async Task> GetReferencesToItemByField(int itemId, int fieldId, int limit = 20)
+        public async Task> GetReferencesToItemByField(long itemId, int fieldId, int limit = 20)
         {
             var requestData = new Dictionary()
             {
@@ -661,7 +661,7 @@ public async Task> GetReferencesToItemByField(int itemId, int fi
         /// 
         /// The type of the reference
         /// The id of the reference
-        public async System.Threading.Tasks.Task UpdateItemReference(int itemId, string type, int referenceId)
+        public async System.Threading.Tasks.Task UpdateItemReference(long itemId, string type, int referenceId)
         {
             dynamic requestData = new
             {
@@ -680,7 +680,7 @@ public async System.Threading.Tasks.Task UpdateItemReference(int itemId, string
         /// 
         /// 
         /// The id of the new revision
-        public async Task RevertItemRevision(int itemId, int revisionId)
+        public async Task RevertItemRevision(long itemId, int revisionId)
         {
             var url = string.Format("/item/{0}/revision/{1}", itemId, revisionId);
             var response = await _podio.Delete(url);
@@ -698,7 +698,7 @@ public async System.Threading.Tasks.Task UpdateItemReference(int itemId, string
         /// 
         /// 
         /// revision
-        public async Task RevertToRevision(int itemId, int revision)
+        public async Task RevertToRevision(long itemId, int revision)
         {
             var url = string.Format("/item/{0}/revision/{1}/revert_to", itemId, revision);
             var response = await _podio.Delete(url);
@@ -723,7 +723,7 @@ public async System.Threading.Tasks.Task UpdateItemReference(int itemId, string
         /// 
         /// The text to search for. The search will be lower case, and with a wildcard in each end.
         /// 
-        public async Task> FindReferenceableItems(int fieldId, int limit = 13, int[] notItemIds = null,
+        public async Task> FindReferenceableItems(int fieldId, int limit = 13, long[] notItemIds = null,
             string sort = null, string text = null)
         {
             string itemIdCSV = Utility.ArrayToCSV(notItemIds);
@@ -744,7 +744,7 @@ public async Task> FindReferenceableItems(int fieldId, int limit = 13
         /// 
         /// 
         /// 
-        public async Task GetItemClone(int itemId)
+        public async Task GetItemClone(long itemId)
         {
             string url = string.Format("/item/{0}/clone", itemId);
             return await _podio.Get(url);
@@ -758,13 +758,13 @@ public async Task GetItemClone(int itemId)
         /// 
         /// 
         /// 
-        public async Task> GetItemRevisionDifference(int itemId, int revisionFrom, int revisionTo)
+        public async Task> GetItemRevisionDifference(long itemId, int revisionFrom, int revisionTo)
         {
             string url = string.Format("/item/{0}/revision/{1}/{2}", itemId, revisionFrom, revisionTo);
             return await _podio.Get>(url);
         }
 
-        public async Task Calcualate(int itemId, ItemCalculateRequest ItemCalculateRequest, int limit = 30)
+        public async Task Calcualate(long itemId, ItemCalculateRequest ItemCalculateRequest, int limit = 30)
         {
             ItemCalculateRequest.Limit = ItemCalculateRequest.Limit == 0 ? 30 : ItemCalculateRequest.Limit;
             string url = string.Format("/item/app/{0}/calculate", itemId);
diff --git a/Source/Podio .NET/Utils/Utilities.cs b/Source/Podio .NET/Utils/Utilities.cs
index 5cf87955..cf592192 100644
--- a/Source/Podio .NET/Utils/Utilities.cs	
+++ b/Source/Podio .NET/Utils/Utilities.cs	
@@ -18,6 +18,14 @@ internal static string ArrayToCSV(int[] array, string splitter = ",")
             return string.Empty;
         }
 
+        internal static string ArrayToCSV(long[] array, string splitter = ",")
+        {
+            if (array != null && array.Length > 0)
+                return string.Join(splitter, array);
+
+            return string.Empty;
+        }
+
         internal static string ArrayToCSV(string[] array, string splitter = ",")
         {
             if (array != null && array.Length > 0)