proper return type failing