Some changes to support basic operations