return id so no need for casting