Please read my comments from the previous pull request. There is lot's of stuff missing I'm talked about.