cleaned up public api