shouldn't we use explicit return type?