using proper return type