abstract actions