made return type checksafe