finish implementing public feature