updated public api with returns