Added design documentation
Started on implementation