will need to expand on this png optimisation later