Moved out the signature analysis for clarity.