added cleaner exposed interfaces