clarify the return type