added Type Safe