saving stack space
casting > stack space