slightly less code