improved commands_required. Added enforce function, exception and decorator