this can just be AdapterInterface