completed singleton