Moved blockable functions to their own namespace, physically separated them from core functions, added more documentation, refactored code.