implemented construct add/retrieve