add @doc and @spec