I think i've got casting implemented