sometimes must be cast to list