make it easy to add support for new shells