Almost ready to compile ;D