Major refactoring + added the Cairo library