added registration function