add implementations and stubs