has 'api' => ( is => 'ro', isa => 'SomeFramework::API', reader => '_get_api', writer => '_set_api', required => 1, handles => { api => 'return_self' # ^^^ It's supposed to have some method that # returns the reference to its own object } );