Put a fair bit of effort into this but not everything is perfect by a long stretch so cut me some slack, Jack..;.