factor 'base' prototype description into it's own module