Basic structure

Basic structure to be able to add more functionality and improve the
core