more specific return type