custom wrapper for singleton types