Refactor all this and add favicon