properly optimise for size now