fixed implicit casting