extend 'public' so it supports composition