implemented casting