diff --git a/app/directives/tc-input/tc-input.spec.js b/app/directives/tc-input/tc-input.spec.js
new file mode 100644
index 000000000..83a80e6a7
--- /dev/null
+++ b/app/directives/tc-input/tc-input.spec.js
@@ -0,0 +1,69 @@
+/* jshint -W117, -W030 */
+describe('Topcoder Input Directive', function() {
+  var scope, element, controller;
+
+  beforeEach(function() {
+    bard.appModule('topcoder');
+    bard.inject(this, '$compile', '$rootScope');
+    scope = $rootScope.$new();
+
+    element = $compile(angular.element('<tc-input />'))(scope);
+    scope.$digest();
+  });
+
+  bard.verifyNoOutstandingHttpRequests();
+
+  it('should set inputType to text if no inputType given', function() {
+    var input = element.find('input')[0];
+
+    expect(input.type).to.equal('text');
+  });
+
+  it('should set inputType to specified inputType if given', function() {
+    element = $compile(angular.element('<tc-input input-type="number"/>'))(scope);
+    scope.$digest();
+
+    var input = element.find('input')[0];
+
+    expect(input.type).to.equal('number');
+  });
+
+  it ('should set the inputValue to the result of updateValueOnBlur when blur event is triggered', function() {
+    scope.updateValueOnBlur = function(inputValue) {
+      return 'new value and ' + inputValue;
+    };
+    scope.inputValue = 'old value';
+
+    element = $compile(angular.element('<tc-input input-value="inputValue" update-value-on-blur="updateValueOnBlur(inputValue)"/>'))(scope);
+    scope.$digest();
+
+    var input = element.find('input')[0];
+
+    expect(scope.inputValue).to.equal('old value');
+
+    $(input).trigger('blur');
+
+    expect(scope.inputValue).to.equal('new value and old value')
+
+  });
+
+  it('should pass inputValue and inputName to onInputChange when inputValue changes', function() {
+    scope.inputValue = 'test input value';
+    scope.onInputChange = function(inputValue, inputName) {
+      return;
+    };
+
+    element = $compile(angular.element('<tc-input input-value="inputValue" input-name="\'test input name\'" on-input-change="onInputChange(inputValue, inputName)"/>'))(scope);
+    scope.$digest();
+
+    var input = element.find('input')[0];
+    var mockOnInputChange = sinon.spy(scope, 'onInputChange');
+
+    expect(mockOnInputChange).not.calledOnce;
+
+    scope.inputValue = 'new test input value';
+    scope.$digest();
+
+    expect(mockOnInputChange).calledOnce;
+  });
+});
diff --git a/app/my-dashboard/programs/programs.controller.js b/app/my-dashboard/programs/programs.controller.js
index b6cbe3aa7..cb192afb8 100644
--- a/app/my-dashboard/programs/programs.controller.js
+++ b/app/my-dashboard/programs/programs.controller.js
@@ -49,7 +49,6 @@
 
 
     function registerUser() {
-      debugger;
       vm.loading = true;
       return MemberCertService.registerMember(userId, CONSTANTS.SWIFT_PROGRAM_ID).then(function(data) {
         if (data && data.eventId && data.userId) {
diff --git a/app/specs.html b/app/specs.html
index e560f835f..caf9389a9 100644
--- a/app/specs.html
+++ b/app/specs.html
@@ -63,13 +63,24 @@ <h1><a href="specs.html">Spec Runner</a></h1>
     <script src="../bower_components/angular-animate/angular-animate.js"></script>
     <script src="../bower_components/angularjs-toaster/toaster.js"></script>
     <script src="../bower_components/appirio-tech-ng-iso-constants/dist/ng-iso-constants.js"></script>
+    <script src="../bower_components/angular-resource/angular-resource.js"></script>
+    <script src="../bower_components/moment/moment.js"></script>
+    <script src="../bower_components/angular-scroll/angular-scroll.js"></script>
+    <script src="../bower_components/react/react.js"></script>
+    <script src="../bower_components/react/react-dom.js"></script>
+    <script src="../bower_components/classnames/index.js"></script>
+    <script src="../bower_components/classnames/bind.js"></script>
+    <script src="../bower_components/classnames/dedupe.js"></script>
+    <script src="../bower_components/react-input-autosize/dist/react-input-autosize.min.js"></script>
+    <script src="../bower_components/react-select/dist/react-select.min.js"></script>
+    <script src="../bower_components/ngReact/ngReact.js"></script>
+    <script src="../bower_components/appirio-tech-ng-ui-components/dist/main.js"></script>
     <script src="../bower_components/d3/d3.js"></script>
     <script src="../bower_components/jstzdetect/jstz.min.js"></script>
-    <script src="../bower_components/moment/moment.js"></script>
+    <script src="../bower_components/lodash/lodash.js"></script>
     <script src="../bower_components/ng-busy/build/angular-busy.js"></script>
     <script src="../bower_components/ng-notifications-bar/dist/ngNotificationsBar.min.js"></script>
     <script src="../bower_components/ngDialog/js/ngDialog.js"></script>
-    <script src="../bower_components/lodash/lodash.js"></script>
     <script src="../bower_components/restangular/dist/restangular.js"></script>
     <script src="../bower_components/angular-touch/angular-touch.js"></script>
     <script src="../bower_components/angular-carousel/dist/angular-carousel.js"></script>
@@ -80,6 +91,7 @@ <h1><a href="specs.html">Spec Runner</a></h1>
     <script src="../bower_components/bardjs/dist/bard.js"></script>
     <script src="../bower_components/bardjs/dist/bard-ngRouteTester.js"></script>
     <script src="../bower_components/jquery/dist/jquery.js"></script>
+    <script src="../bower_components/bind-polyfill/index.js"></script>
     <!-- endbower -->
 
     <!-- inject:nonBowerScripts:js -->
@@ -95,6 +107,7 @@ <h1><a href="specs.html">Spec Runner</a></h1>
     <script src="/app/topcoder.controller.js"></script>
     <script src="/app/topcoder.constants.js"></script>
     <script src="/app/submissions/submissions.module.js"></script>
+    <script src="/app/submissions/submit-file/submit-file.controller.js"></script>
     <script src="/app/submissions/submissions.routes.js"></script>
     <script src="/app/submissions/submissions.controller.js"></script>
     <script src="/app/skill-picker/skill-picker.module.js"></script>
@@ -113,6 +126,7 @@ <h1><a href="specs.html">Spec Runner</a></h1>
     <script src="/app/services/user.service.js"></script>
     <script src="/app/services/tcAuth.service.js"></script>
     <script src="/app/services/tags.service.js"></script>
+    <script src="/app/services/submissions.service.js"></script>
     <script src="/app/services/statistics.service.js"></script>
     <script src="/app/services/srm.service.js"></script>
     <script src="/app/services/scorecard.service.js"></script>
@@ -184,20 +198,29 @@ <h1><a href="specs.html">Spec Runner</a></h1>
     <script src="/app/filters/empty.filter.js"></script>
     <script src="/app/filters/deadline-msg.filter.js"></script>
     <script src="/app/filters/challengeLinks.filter.js"></script>
+    <script src="/app/filters/add-beginning-space.filter.js"></script>
     <script src="/app/directives/tcui-components.module.js"></script>
     <script src="/app/directives/track-toggle/track-toggle.directive.js"></script>
     <script src="/app/directives/tc-transclude.directive.js"></script>
+    <script src="/app/directives/tc-textarea/tc-textarea.directive.js"></script>
     <script src="/app/directives/tc-tabs/tc-tabs.directive.js"></script>
     <script src="/app/directives/tc-sticky/tc-sticky.directive.js"></script>
     <script src="/app/directives/tc-section/tc-section.directive.js"></script>
     <script src="/app/directives/tc-paginator/tc-paginator.directive.js"></script>
+    <script src="/app/directives/tc-input/tc-input.directive.js"></script>
+    <script src="/app/directives/tc-form-stockart/tc-form-stockart.directive.js"></script>
+    <script src="/app/directives/tc-form-fonts/tc-form-fonts.directive.js"></script>
+    <script src="/app/directives/tc-file-input/tc-file-input.directive.js"></script>
     <script src="/app/directives/tc-endless-paginator/tc-endless-paginator.directive.js"></script>
     <script src="/app/directives/srm-tile/srm-tile.directive.js"></script>
     <script src="/app/directives/slideable.directive.js"></script>
     <script src="/app/directives/skill-tile/skill-tile.directive.js"></script>
     <script src="/app/directives/responsive-carousel/responsive-carousel.directive.js"></script>
+    <script src="/app/directives/progress-bar/progress-bar.directive.js"></script>
     <script src="/app/directives/profile-widget/profile-widget.directive.js"></script>
+    <script src="/app/directives/preventEventPropagation.directive.js"></script>
     <script src="/app/directives/page-state-header/page-state-header.directive.js"></script>
+    <script src="/app/directives/onoffswitch/onoffswitch.directive.js"></script>
     <script src="/app/directives/on-file-change.directive.js"></script>
     <script src="/app/directives/ios-card/ios-card.directive.js"></script>
     <script src="/app/directives/input-sticky-placeholder/input-sticky-placeholder.directive.js"></script>
@@ -206,6 +229,7 @@ <h1><a href="specs.html">Spec Runner</a></h1>
     <script src="/app/directives/focus-on.directive.js"></script>
     <script src="/app/directives/external-account/external-web-links.directive.js"></script>
     <script src="/app/directives/external-account/external-links-data.directive.js"></script>
+    <script src="/app/directives/external-account/external-link-deletion.controller.js"></script>
     <script src="/app/directives/external-account/external-account.directive.js"></script>
     <script src="/app/directives/empty-state-placeholder/empty-state-placeholder.directive.js"></script>
     <script src="/app/directives/distribution-graph/distribution-graph.directive.js"></script>
@@ -244,10 +268,9 @@ <h1><a href="specs.html">Spec Runner</a></h1>
     <script src="/app/topcoder.interceptors.spec.js"></script>
     <script src="/app/filters/filters.spec.js"></script>
     <script src="/app/my-challenges/my-challenges.spec.js"></script>
-    <script src="/app/my-dashboard/my-dashboard.spec.js"></script>
     <script src="/app/my-srms/my-srms.spec.js"></script>
+    <script src="/app/my-dashboard/my-dashboard.spec.js"></script>
     <script src="/app/profile/profile.controller.spec.js"></script>
-    <script src="/app/settings/settings.spec.js"></script>
     <script src="/app/services/authToken.service.spec.js"></script>
     <script src="/app/services/challenge.service.spec.js"></script>
     <script src="/app/services/externalAccounts.service.spec.js"></script>
@@ -258,6 +281,7 @@ <h1><a href="specs.html">Spec Runner</a></h1>
     <script src="/app/services/tcAuth.service.spec.js"></script>
     <script src="/app/services/user.service.spec.js"></script>
     <script src="/app/services/userStats.service.spec.js"></script>
+    <script src="/app/settings/settings.spec.js"></script>
     <script src="/app/skill-picker/skill-picker.spec.js"></script>
     <script src="/app/submissions/submissions.spec.js"></script>
     <script src="/app/account/login/login.spec.js"></script>
@@ -270,9 +294,14 @@ <h1><a href="specs.html">Spec Runner</a></h1>
     <script src="/app/directives/challenge-tile/challenge-tile.spec.js"></script>
     <script src="/app/directives/empty-state-placeholder/empty-state-placeholder.spec.js"></script>
     <script src="/app/directives/external-account/external-account.directive.spec.js"></script>
+    <script src="/app/directives/external-account/external-link-deletion.controller.spec.js"></script>
     <script src="/app/directives/external-account/external-links-data.directive.spec.js"></script>
     <script src="/app/directives/external-account/external-web-links.directive.spec.js"></script>
     <script src="/app/directives/tc-endless-paginator/tc-endless-paginator.spec.js"></script>
+    <script src="/app/directives/tc-file-input/tc-file-input.spec.js"></script>
+    <script src="/app/directives/tc-form-fonts/tc-form-fonts.spec.js"></script>
+    <script src="/app/directives/tc-form-stockart/tc-form-stockart.spec.js"></script>
+    <script src="/app/directives/tc-input/tc-input.spec.js"></script>
     <script src="/app/directives/tc-paginator/tc-paginator.spec.js"></script>
     <script src="/app/directives/tc-tabs/tc-tabs.directive.spec.js"></script>
     <script src="/app/my-dashboard/community-updates/community-updates.spec.js"></script>
@@ -291,6 +320,7 @@ <h1><a href="specs.html">Spec Runner</a></h1>
     <script src="/app/settings/account-info/account-info.spec.js"></script>
     <script src="/app/settings/edit-profile/edit-profile.spec.js"></script>
     <script src="/app/settings/preferences/preferences.spec.js"></script>
+    <script src="/app/submissions/submit-file/submit-file.spec.js"></script>
     <script src="/app/directives/account/toggle-password/toggle-password.spec.js"></script>
     <script src="/app/directives/account/toggle-password-with-tips/toggle-password-with-tips.spec.js"></script>
     <!-- endinject -->