hack to allow source to be passed through, also allow null featuretype in shallow