Revert "cleaned up semantics"

This reverts commit e302a7530e10f9493118c0f11a5ff26a84fbcdf3.
Revert "Revert "cleaned up semantics""

This reverts commit e71bfcc4a5058dba22841b4c4fcfcd813ad363f7.