Initial implementation

Here is some code :D