added ApiDoc and made implementation synchronized