Refactored Recycle (testing)

The refacoting is done in order to mitigate found
NullRefeferenceExceptions, rationale behind this is those exceptions are
caused by premature recycling.