implement some primitive actions