Thanks, I will update tomorrow (well its today now )
I had a long review of the code from Saturday's broadcast and have made quite a few changes, especially around the design of the account-holder specification which is now a composite of the individual customer details specification. This means that the data used with the specification is a flat hash-map without needing to nest the customer details inside the account holder hash-map. I've updated the design journal to cover the updated versions of the code and hopefully explain the changes and design more clearly. https://github.com/practicalli/leveraging-spec/blob/master/src/practicalli/bank_account_design_journal.clj The updated tests now pass in the bank-account-test namespace.