allowing for either types a or c