diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ea2b204
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,32 @@
+# Node
+node_modules/*
+npm-debug.log
+
+# TypeScript
+src/*.js
+src/*.map
+src/*.d.ts
+
+# JetBrains
+.idea
+.project
+.settings
+.idea/*
+*.iml
+
+# VS Code
+.vscode/*
+
+# Windows
+Thumbs.db
+Desktop.ini
+
+# Mac
+.DS_Store
+**/.DS_Store
+
+# Ngc generated files
+**/*.ngfactory.ts
+
+# Build files
+dist/*
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..fdb7f4f
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,34 @@
+# Node
+node_modules/*
+npm-debug.log
+docs/*
+# DO NOT IGNORE TYPESCRIPT FILES FOR NPM
+# TypeScript
+# *.js
+# *.map
+# *.d.ts
+
+# JetBrains
+.idea
+.project
+.settings
+.idea/*
+*.iml
+
+# VS Code
+.vscode/*
+
+# Windows
+Thumbs.db
+Desktop.ini
+
+# Mac
+.DS_Store
+**/.DS_Store
+
+# Ngc generated files
+**/*.ngfactory.ts
+
+# Library files
+src/*
+build/*
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..66877ef
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,7 @@
+language: node_js
+sudo: false
+node_js:
+- '6'
+
+script:
+ - npm run lint
\ No newline at end of file
diff --git a/.yo-rc.json b/.yo-rc.json
new file mode 100644
index 0000000..a9ea31e
--- /dev/null
+++ b/.yo-rc.json
@@ -0,0 +1,7 @@
+{
+ "generator-angular2-library": {
+ "promptValues": {
+ "gitRepositoryUrl": "http://github.com/patrickvaler/ng-vote"
+ }
+ }
+}
\ No newline at end of file
diff --git a/README.MD b/README.MD
new file mode 100644
index 0000000..1deee2e
--- /dev/null
+++ b/README.MD
@@ -0,0 +1,126 @@
+[![Build Status](https://travis-ci.org/patrickvaler/ng-vote.svg?branch=master)](https://travis-ci.org/patrickvaler/ng-vote) [![Dependency Status](https://david-dm.org/patrickvaler/ng-vote/status.svg?style=flat)](https://david-dm.org/patrickvaler/ng-vote) [![npm version](https://badge.fury.io/js/ng-vote.svg)](http://badge.fury.io/js/ng-vote)
+
+# ng-vote
+
+Simple & lightweight Angular 2 vote component.
+
+![ng-vote demo][demo]
+
+## Installation
+
+To install ng-vote, run:
+
+```bash
+$ npm install ng-vote --save
+```
+
+## Usage
+Import `NgVoteModule` into your Angular application:
+
+```typescript
+
+// Import ng-vote
+import { NgVoteModule } from 'ng-vote';
+
+@NgModule({
+ declarations: [
+ AppComponent
+ ],
+ imports: [
+ BrowserModule,
+ // Specify ng-vote as an import
+ NgVoteModule
+ ],
+ providers: [],
+ bootstrap: [AppComponent]
+})
+export class AppModule { }
+```
+
+Once ng-vote is imported, you can use it in your Angular application:
+
+```typescript
+
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'app-root',
+ templateUrl: './app.component.html',
+ styleUrls: ['./app.component.css']
+})
+export class AppComponent {
+ voteConfig: {
+ cssClass: 'my-class',
+ allowEdit: true,
+ disabled: false
+ }
+ votes: 123, // total amount of votes
+ selectedVote: 0 // not voted yet
+
+ onVote(vote) {
+ console.log('onVote response: ', vote)
+ }
+}
+```
+
+```html
+
+
+
+
+
+ Up
+
+
+ Down
+
+```
+
+## Bindings
+### ng-vote component
+
+``
+```typescript
+
+ // Input
+ totalVotes: number
+ selectedVote: number // one of -1 (downVote), 0 (not voted), 1 (upVote)
+ config: {
+ allowEdit: boolean, // defines if user is allowed to change selection
+ disabled: boolean // disables vote functionality
+ cssClass: string // Sets custom css class to override styles
+
+ }
+
+ // Output
+ (vote): {
+ selectedVote:number,
+ totalVotes:number
+ }
+
+```
+
+### ng-vote-up / ng-vote-down component
+No bindings available for `` / ``. Content will be projected to the `