Added default constructors and removed detaching to have only value semantic usage.