slight optimization
use bits args for all these functions