add some core implementation code