autocast fully implemented