Add the initial class structure

This commit proposes a class structure for the project. I believe that it can be adapted for all of the uses that we want.