Refaktoroitu koodia, nullpointterit huomioitu.