updating to make a clear API