diff --git a/erpnext/public/js/hub/hub_form.js b/erpnext/public/js/hub/hub_form.js
index fe39793..130a0db 100644
--- a/erpnext/public/js/hub/hub_form.js
+++ b/erpnext/public/js/hub/hub_form.js
@@ -106,7 +106,7 @@
 			category_field.read_only = 1;
 		}
 
-		fields.push(category_field);
+		fields.unshift(category_field);
 
 		return fields;
 	}
diff --git a/erpnext/public/js/hub/hub_page.js b/erpnext/public/js/hub/hub_page.js
index f333fee..46e5ce4 100644
--- a/erpnext/public/js/hub/hub_page.js
+++ b/erpnext/public/js/hub/hub_page.js
@@ -13,14 +13,12 @@
 	setup_fields() {
 		return this.get_meta()
 			.then(r => {
-				// console.log('fields then', this.doctype);
 				this.meta = r.message || this.meta;
 				frappe.model.sync(this.meta);
 			});
 	}
 
 	get_meta() {
-		// console.log('get_meta', this.doctype);
 		return new Promise(resolve =>
 			frappe.call('erpnext.hub_node.get_meta', {doctype: this.doctype}, resolve));
 	}
@@ -51,7 +49,6 @@
 
 	update_data(r) {
 		const data = r.message;
-		console.log('update data', data);
 
 		if (this.start === 0) {
 			this.data = data;
@@ -79,7 +76,6 @@
 
 	render_image_view() {
 		let data = this.data;
-		// console.log('this.data render', this.data);
 		if (this.start === 0) {
 			this.$result.html('<div class="image-view-container small padding-top">');
 			data = this.data.slice(this.start);
@@ -164,7 +160,6 @@
 		item._name = encodeURI(item.name);
 		const encoded_name = item._name;
 		const title = strip_html(item['item_name' || 'item_code']);
-		// console.log(item);
 		const company_name = item['company_name'];
 
 		const route = `#Hub/Item/${item.hub_item_code}`;
