singleton & tests