Externalize rendering system and core level structure

Put the base of the rendering system in a separated folder
for the issue #1