Topic/docs

Added the design document, there are some open points, but I will build those later when I have more details. I think this is a good enough start. 
The point you are trying to make by specifically mentioning specs and being able to refactor where required is a bit unclear.