some optimising and fitches