Hide implemetation details from public interfaces