started extern implementation