Cleaned up for new semantics