removed null checks to allow static null inference