add dependency. improve return