too much type casting