Blocks can now be set up in any order - the code will find the best match