- add: checking for element data
- add: public function template