added block args and do loop patterns and specs