updated APIs to be more symmetrical