Use delegation to provide safe api