better implementation of disabling fields