working on multi control abstractions