Cleans up FiniteCheck a bit and adds cached instances of its sub tasks. Also adds factory for it.