Спасибо за хороший пример.
В целом в модуле еще много логики, так что его написание своего модуля было оправдано, ну и в целом он уже написан и функционирует, у меня были сомнения в оправданности использования переменных для передачи ссылки, но смотрю в вашем примере вы так же используете переменные.