Two significant issues here.  Firstly it would be better if we could avoid creating a dependency between the iFC handler and the registration store - it inevitably will cause maintainability issues down the line.  Also, I'm not sure how many iFC will actually be conditional on whether the user is registered, so hitting the registration store all the time is probably not a good idea.

To some extent these issues are pulling in opposite directions, so it's not clear what the right solution is.  I wonder if this would justify the complexity of having a callback interface supplied on lookup_ifcs so filter_matches can call back to the user of the interface to ask for the information it needs.  With careful design this should make the IfcHandler more extensible and better performing.