add optional dtype