factor out action classes