complete singleton function
complete combine function