remaining impl methods