updated to use internal pullups