add: base implement code